1. Field of the Invention
The invention relates to the integration of bidirectional switches with programmable logic to solve electronic signaling problems.
2. Description of the Related Art
Design defects are often encountered during development of electronic systems. When production schedules do not permit fixing the defects in the errant devices, or when the problem source cannot be isolated, programmable logic can be employed to both work around and identify the problems caused by the defective devices.
A programmable logic device (PLD) is a circuit which can be configured by the customer, to perform needed logic functions. Most standard PLDs consist of an AND array followed by an OR array, both of which may be programmable. The inputs are coupled to the AND array, which performs the AND functions and generates product terms. The product terms are coupled to the OR array. The OR array combines (sums) the outputs of the various product terms to produce the desired outputs. Programmable array logic (PAL) is a PLD that has a programmable AND array followed by a fixed OR array. Programmable logic and the basics of programming it are well known to those with ordinary skill in the art. The term programmable logic will be used for PLDs, PALs, and related logic such as gate arrays and programmable state machines. Programmable logic can be used for tracking bus states, configuring dynamically alterable state machines and a variety of other tasks.
Programmable logic can be used to decode errant signals from digital devices. Programmable logic has been used to work around defects in devices in some systems by using programmable logic that supports bidirectional signals. The signal from the errant device would be passed through transceivers in the programmable logic and on to the remainder of the system. In normal operation, the programmable logic would control the direction of the transceivers as appropriate, based on other signals in the system. To isolate the errant signal from the rest of the system, the transceivers could be disabled, and then the programmable logic would directly drive the signal to the system.
This technique, however, required the transceiver direction to be controlled by the programmable logic. This could become quite complicated for some signals.
Further, as clock speeds increased, timing problems also arose. Using multiple discrete devices could result in stub length and termination issues that in turn caused signal degradation and timing problems. Typical device isolation and debugging solutions often did not avoid these issues.
If an errant device was disconnected from the signal path problems associated with signal reflection could occur. Reflections from improperly terminated stubs could cause abnormal conditions within a system. As signal frequencies increased the possibility of reflections increased and the need for proper termination became important.